package 动态规划.路径问题;

/**
 * @Date 2024/9/27 22:39
 * @description: 不同路径
 * .        https://leetcode.cn/problems/unique-paths/description/
 * @Author LittleNight
 */
public class likou62 {

    // 直接暴搜, 超时了 O(2^N), 改成记忆化搜索, 动态规划

    // 这道题即可以使用记忆化搜索, 也可以使用动态规划
    // 时间复杂度都是 O(M*N)
    // 练习.
    public int uniquePaths(int m, int n) {
        // 1. 创建 dp 表
        // 2. 初始化
        // 3. 填表
        // 4. 返回值
        int[][] dp = new int[m + 1][n + 1];
        dp[0][1] = 1;
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                // 两种路径
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
            }
        }
        return dp[m][n];
    }

}
